AWK স্ক্রিপ্ট ফাইল তৈরি করা ব্যবহারকারীদের জন্য জটিল কাজকে সহজ করতে সহায়ক। এটি একটি স্বতন্ত্র ফাইল হিসেবে সংরক্ষিত হয় যা AWK কমান্ড এবং স্ক্রিপ্ট ধারণ করে। AWK স্ক্রিপ্ট ফাইল ব্যবহার করে আপনি বড় এবং পুনরায় ব্যবহারযোগ্য কোড লিখতে পারেন।
একটি AWK স্ক্রিপ্ট ফাইল সাধারণত .awk
এক্সটেনশনে সংরক্ষিত হয়। AWK স্ক্রিপ্ট ফাইলের মধ্যে প্রোগ্রাম শুরু করার জন্য কিছু সাধারণ অংশ থাকে:
#!/usr/bin/awk -f
# BEGIN ব্লক (ঐচ্ছিক)
BEGIN {
print "Processing started"
}
# প্রধান প্রোগ্রাম ব্লক
{
print $1, $2
}
# END ব্লক (ঐচ্ছিক)
END {
print "Processing completed"
}
nano
, vim
, বা gedit
) ব্যবহার করে একটি নতুন ফাইল তৈরি করুন।#!/usr/bin/awk -f
শেবাং লাইনটি যোগ করুন, যা স্ক্রিপ্টটি AWK ইন্টারপ্রেটারের মাধ্যমে চালানোর নির্দেশ দেয়।.awk
এক্সটেনশনে সংরক্ষণ করুন।nano myscript.awk
এরপর ফাইলের মধ্যে নিচের কোড লিখুন:
#!/usr/bin/awk -f
BEGIN {
print "Start processing the file"
}
{
print "First Field:", $1, "Second Field:", $2
}
END {
print "Processing finished"
}
ফাইলটি সংরক্ষণ করুন এবং বন্ধ করুন।
AWK স্ক্রিপ্ট ফাইল চালানোর জন্য নিচের কমান্ডটি ব্যবহার করুন:
awk -f myscript.awk inputfile.txt
এখানে, -f
নির্দেশনা স্ক্রিপ্ট ফাইল থেকে AWK কমান্ড পড়ে এবং inputfile.txt
হল ইনপুট ফাইল যা স্ক্রিপ্টটি প্রক্রিয়া করবে।
AWK স্ক্রিপ্ট ফাইলকে এক্সিকিউটেবল করা যায়, যাতে সরাসরি স্ক্রিপ্ট চালানো সম্ভব হয়। এক্সিকিউটেবল করার জন্য নিচের কমান্ডটি ব্যবহার করুন:
chmod +x myscript.awk
এরপর, স্ক্রিপ্টটি সরাসরি চালানো যায়:
./myscript.awk inputfile.txt
AWK স্ক্রিপ্ট ফাইল ব্যবহার করে আপনি জটিল ডেটা প্রক্রিয়াকরণ এবং বিশ্লেষণ করতে পারেন। এর কিছু উদাহরণ:
AWK স্ক্রিপ্ট ফাইল তৈরি এবং ব্যবহার করা ডেটা প্রক্রিয়াকরণের জন্য একটি সহজ ও কার্যকর উপায়। এটি পুনরায় ব্যবহারযোগ্য এবং জটিল কাজ সহজে সম্পাদন করতে সহায়তা করে। AWK স্ক্রিপ্ট ফাইল ব্যবহারকারীদের দ্রুত এবং কার্যকরীভাবে ডেটা বিশ্লেষণ করতে সহায়তা করে।
AWK স্ক্রিপ্ট ফাইল হল এমন একটি ফাইল যেখানে AWK কমান্ড এবং ফাংশনগুলো সংরক্ষণ করা থাকে, যা সহজে বড় আকারের ডেটা প্রসেসিং করতে ব্যবহৃত হয়। এই পদ্ধতিতে, একটি AWK প্রোগ্রাম একাধিক লাইনে লেখা এবং পুনর্ব্যবহৃত করা যায়।
AWK স্ক্রিপ্ট ফাইল তৈরি এবং তা চালানোর জন্য নিচের ধাপগুলো অনুসরণ করতে পারেন।
একটি AWK স্ক্রিপ্ট ফাইল সাধারণত .awk
এক্সটেনশনের সাথে সংরক্ষণ করা হয়। এতে AWK কোড লেখা হয়, যা ইনপুট ফাইল বা ডেটার ওপর প্রক্রিয়া চালায়।
ধরা যাক, একটি AWK স্ক্রিপ্ট ফাইল myscript.awk
নামে তৈরি করা হয়েছে।
myscript.awk:
# myscript.awk
# BEGIN ব্লক: স্ক্রিপ্ট শুরু করার আগে চালিত হয়
BEGIN {
print "Starting AWK Script"
}
# মূল প্রক্রিয়াকরণ ব্লক: প্রতিটি রেকর্ডে চালিত হয়
{
print "Processing line:", $0
print "First field:", $1
}
# END ব্লক: স্ক্রিপ্টের শেষে চালিত হয়
END {
print "AWK Script Finished"
}
AWK স্ক্রিপ্ট চালানোর জন্য কমান্ড লাইন ব্যবহার করতে হবে। AWK স্ক্রিপ্ট ফাইল চালানোর সাধারণ সিনট্যাক্স:
awk -f myscript.awk inputfile.txt
এখানে:
-f
ফ্ল্যাগটি AWK-কে বলে যে এটি একটি ফাইল থেকে স্ক্রিপ্ট পড়তে হবে।myscript.awk
হল AWK স্ক্রিপ্ট ফাইলের নাম।inputfile.txt
হল সেই ইনপুট ফাইল যা প্রক্রিয়া করা হবে।awk -f myscript.awk data.txt
এই কমান্ডটি data.txt
ইনপুট ফাইল প্রক্রিয়াকরণের জন্য myscript.awk
স্ক্রিপ্ট চালাবে এবং আউটপুট প্রদর্শন করবে।
AWK স্ক্রিপ্ট ফাইল ব্যবহারের কিছু সুবিধা:
sumfields.awk:
# sumfields.awk
BEGIN {
sum = 0
}
# দ্বিতীয় কলামের যোগফল নির্ণয়
{
sum += $2
}
END {
print "Total sum of second field:", sum
}
চালানোর কমান্ড:
awk -f sumfields.awk data.txt
এই স্ক্রিপ্ট data.txt
ফাইলের দ্বিতীয় কলামের মানগুলোর যোগফল বের করবে।
AWK স্ক্রিপ্ট ফাইলে কমেন্ট যোগ করার জন্য #
চিহ্ন ব্যবহার করা হয়। এটি AWK স্ক্রিপ্ট পড়ার সময় ব্যবহারকারীকে বুঝতে সহায়তা করে কোন অংশে কী কাজ করা হচ্ছে।
AWK স্ক্রিপ্ট ফাইল তৈরি এবং তার ব্যবহার বড় আকারের ডেটা প্রক্রিয়াকরণের জন্য অত্যন্ত কার্যকরী। এটি কোডকে আরো পড়ার যোগ্য, পুনর্ব্যবহারযোগ্য এবং সহজ ডিবাগিং করতে সহায়ক করে। AWK স্ক্রিপ্ট ফাইল ব্যবহার করে প্রোগ্রামাররা সহজেই ডেটা ফিল্টার, প্রক্রিয়াকরণ এবং বিশ্লেষণ করতে সক্ষম হন।
AWK স্ক্রিপ্ট কমান্ড লাইন থেকে বিভিন্ন উপায়ে চালানো যায়। AWK এর সরলতা এবং নমনীয়তা এটি কমান্ড লাইনে সহজে ব্যবহারযোগ্য করে তোলে। এখানে AWK স্ক্রিপ্ট চালানোর বিভিন্ন পদ্ধতি এবং এর ব্যবহার সম্পর্কে বিস্তারিত আলোচনা করা হয়েছে।
AWK কমান্ড সরাসরি কমান্ড লাইনে লেখা এবং চালানো যায়। এটি ছোট এবং দ্রুত কাজের জন্য উপযোগী।
awk '{ print $1, $2 }' data.txt
এই কমান্ডটি data.txt
ফাইলের প্রথম এবং দ্বিতীয় কলাম প্রিন্ট করবে।
ব্যাখ্যা:
{ print $1, $2 }
: AWK প্রোগ্রাম যা প্রথম এবং দ্বিতীয় কলাম প্রিন্ট করে।data.txt
: ইনপুট ফাইল।-F
অপশন ব্যবহার করে ফিল্ড সেপারেটর নির্ধারণ করাAWK এ -F
ফ্ল্যাগ ব্যবহার করে ফিল্ড সেপারেটর নির্ধারণ করা যায়।
awk -F"," '{ print $1, $3 }' data.csv
এটি data.csv
ফাইল থেকে প্রথম এবং তৃতীয় কলাম প্রিন্ট করবে, যেখানে কমা (,
) ফিল্ড সেপারেটর হিসেবে ব্যবহার করা হয়েছে।
AWK এ একাধিক কমান্ড একত্রে ব্যবহার করা যায়, যা জটিল কাজের জন্য প্রয়োজন হতে পারে।
awk '{ sum += $3 } END { print "Total:", sum }' data.txt
এটি data.txt
ফাইলের তৃতীয় কলামের যোগফল প্রিন্ট করবে।
ব্যাখ্যা:
sum += $3
: প্রতিটি লাইনের তৃতীয় কলামের মান যোগ করা।END { print "Total:", sum }
: সব লাইনের যোগফল শেষে প্রিন্ট করা।AWK স্ক্রিপ্ট বড় এবং জটিল হলে, একটি আলাদা ফাইল তৈরি করে সেটি চালানো ভালো।
script.awk
নামে একটি ফাইল তৈরি করুন:
# script.awk
{
print "Name:", $1, "Score:", $2
}
awk -f script.awk data.txt
ব্যাখ্যা:
-f script.awk
: AWK ফাইলটি ব্যবহার করে স্ক্রিপ্ট চালায়।data.txt
: ইনপুট ফাইল।AWK স্ক্রিপ্ট শেল স্ক্রিপ্টের অংশ হিসেবেও ব্যবহার করা যায়।
#!/bin/bash
awk '{ if ($2 > 50) print $1, "Passed"; else print $1, "Failed"; }' scores.txt
ব্যাখ্যা:
scores.txt
ফাইলের দ্বিতীয় কলামের উপর ভিত্তি করে পাস/ফেল নির্ধারণ করে।AWK কমান্ড লাইন থেকে চালানো খুবই সহজ এবং কার্যকরী। এটি সরাসরি কমান্ড লাইনে, একটি নির্দিষ্ট স্ক্রিপ্ট ফাইল থেকে বা শেল স্ক্রিপ্টের অংশ হিসেবে ব্যবহার করা যায়। AWK এর এই বৈশিষ্ট্যগুলি ব্যবহারকারীদের ডেটা প্রক্রিয়াকরণ ও বিশ্লেষণে সুবিধা প্রদান করে এবং দ্রুত ফলাফল অর্জন করতে সহায়তা করে।
AWK স্ক্রিপ্টে আর্গুমেন্ট গ্রহণ এবং প্রক্রিয়াকরণ করার ক্ষমতা রয়েছে, যা স্ক্রিপ্টের কার্যকারিতা এবং ব্যবহারযোগ্যতা বৃদ্ধি করে। এটি ব্যবহারকারীদের স্ক্রিপ্ট চালানোর সময় কাস্টম ইনপুট প্রদান করতে সহায়তা করে।
AWK কমান্ড লাইন আর্গুমেন্ট গ্রহণ করতে পারে এবং স্ক্রিপ্টে সেই আর্গুমেন্টগুলি ব্যবহার করা যায়। AWK এ ARGC
এবং ARGV
নামের বিল্ট-ইন ভেরিয়েবল রয়েছে, যা আর্গুমেন্ট সংখ্যা এবং আর্গুমেন্ট লিস্ট নির্দেশ করে।
ARGC
: মোট আর্গুমেন্টের সংখ্যা নির্দেশ করে।ARGV
: আর্গুমেন্টের অ্যারের মধ্যে প্রতিটি আর্গুমেন্ট রাখে।awk 'BEGIN {
for (i = 0; i < ARGC; i++) {
print "Argument", i, ":", ARGV[i]
}
}'
এখানে, ARGV
অ্যারের প্রতিটি আর্গুমেন্ট প্রিন্ট হবে এবং ARGC
মোট আর্গুমেন্টের সংখ্যা নির্দেশ করবে। যদি এই স্ক্রিপ্ট awk -f script.awk file1 file2
কমান্ডের মাধ্যমে চালানো হয়, তাহলে আউটপুট হবে:
Argument 0 : awk
Argument 1 : script.awk
Argument 2 : file1
Argument 3 : file2
AWK স্ক্রিপ্টের মধ্যে -v
অপশন ব্যবহার করে কাস্টম ভেরিয়েবল তৈরি এবং সেট করা যায়, যা স্ক্রিপ্টে ব্যবহার করা যাবে।
awk -v name="John" 'BEGIN {print "Hello, " name}'
এখানে, -v
অপশন ব্যবহার করে name
নামক ভেরিয়েবল সেট করা হয়েছে এবং BEGIN
ব্লকে সেটি প্রিন্ট করা হয়েছে।
AWK স্ক্রিপ্টে আর্গুমেন্টের মাধ্যমে ফাইল ফিল্টার করাও সম্ভব।
awk 'FILENAME == ARGV[1] {print "Processing:", FILENAME; print $0}' file1.txt file2.txt
এখানে, FILENAME == ARGV[1]
শর্তের মাধ্যমে প্রথম ফাইল file1.txt
প্রক্রিয়া করা হবে এবং প্রতিটি লাইন প্রিন্ট হবে।
AWK স্ক্রিপ্টে কমান্ড লাইন আর্গুমেন্ট সরানো বা পরিবর্তন করা সম্ভব।
awk 'BEGIN {delete ARGV[1]} {print $0}' file1.txt file2.txt
এখানে, delete ARGV[1]
ব্যবহার করে প্রথম আর্গুমেন্ট মুছে ফেলা হয়েছে। এর ফলে, AWK শুধু file2.txt
প্রক্রিয়া করবে।
AWK স্ক্রিপ্টে আর্গুমেন্ট গ্রহণ এবং প্রসেসিং করা স্ক্রিপ্টকে আরও কার্যকর এবং ডায়নামিক করে তোলে। ARGC
এবং ARGV
ব্যবহার করে আর্গুমেন্ট সংখ্যা এবং মান নিয়ন্ত্রণ করা যায়। -v
অপশন ব্যবহার করে কাস্টম ভেরিয়েবল তৈরি এবং সেট করা যায়। AWK স্ক্রিপ্টে এই ক্ষমতা স্ক্রিপ্টের ফ্লেক্সিবিলিটি এবং ব্যবহারযোগ্যতা বাড়ায়।
AWK একটি অত্যন্ত শক্তিশালী এবং বহুমুখী টুল যা জটিল ডেটা প্রসেসিংয়ের কাজ সহজে সম্পন্ন করতে পারে। জটিল ডেটা প্রসেসিংয়ের জন্য AWK এর শক্তি পুরোপুরি ব্যবহার করা যেতে পারে, যেমন একাধিক শর্ত প্রয়োগ করা, ফাংশন ব্যবহার করা, লুপিং এবং ডেটা ফিল্টারিং ইত্যাদি। নিচে জটিল ডেটা প্রসেসিংয়ের জন্য একটি উদাহরণসহ স্ক্রিপ্ট তৈরি করার পদ্ধতি দেখানো হলো।
ধরা যাক, আমাদের একটি sales_data.txt
ফাইল রয়েছে, যেখানে প্রতিটি লাইনে রয়েছে: বিক্রেতার নাম, পণ্যের নাম, বিক্রয় সংখ্যা, এবং বিক্রয় মূল্য। ফাইলটি দেখতে এমন:
John,ProductA,10,15.50
Emily,ProductB,5,20.00
John,ProductC,7,18.00
Sophia,ProductA,12,15.50
Emily,ProductA,9,15.50
আমরা চাই:
awk -F, '
# BEGIN ব্লকে শিরোনাম প্রিন্ট করা হচ্ছে
BEGIN {
print "Sales Report"
print "---------------------"
}
# প্রতিটি লাইন প্রক্রিয়াকরণ
{
salesperson = $1 # বিক্রেতার নাম
sales_count = $3 # বিক্রয় সংখ্যা
sales_value = $3 * $4 # বিক্রয় মূল্য
# মোট বিক্রয়ের সংখ্যা যোগ করা
total_sales[salesperson] += sales_count
# মোট বিক্রয় মূল্য যোগ করা
total_revenue[salesperson] += sales_value
}
# END ব্লকে ফলাফল প্রিন্ট করা হচ্ছে
END {
print "Name | Total Sales | Total Revenue"
print "---------------------------------------"
for (person in total_sales) {
printf "%-8s | %-11d | $%-12.2f\n", person, total_sales[person], total_revenue[person]
}
}' sales_data.txt
-F,
অপশন: কমা দিয়ে আলাদা করা ডেটা প্রক্রিয়াকরণের জন্য ফিল্ড সেপারেটর নির্ধারণ করা হয়েছে।BEGIN
ব্লক: স্ক্রিপ্টের শুরুতে একবার চালিত হয় এবং শিরোনাম প্রিন্ট করে।total_sales[salesperson]
এবং total_revenue[salesperson]
: অ্যারে ব্যবহার করে প্রতিটি বিক্রেতার মোট বিক্রয় সংখ্যা এবং মোট আয় সংরক্ষণ করা হয়েছে।END
ব্লক: স্ক্রিপ্টের শেষে চালিত হয় এবং সব বিক্রেতার জন্য আউটপুট প্রিন্ট করে।Sales Report
---------------------
Name | Total Sales | Total Revenue
---------------------------------------
John | 17 | $324.50
Emily | 14 | $310.50
Sophia | 12 | $186.00
এই স্ক্রিপ্টে আপনি আরও শর্ত এবং ফিল্টারিং যোগ করতে পারেন, যেমন:
awk -F, '$3 > 10 { print $1 " has sold more than 10 units of " $2 }' sales_data.txt
AWK ব্যবহার করে জটিল ডেটা প্রসেসিংয়ের জন্য শক্তিশালী স্ক্রিপ্ট তৈরি করা যায়। অ্যারে, শর্ত, এবং লুপ ব্যবহার করে AWK প্রোগ্রামিং সহজে বিভিন্ন স্তরের বিশ্লেষণ করতে পারে। এই স্ক্রিপ্টগুলি ব্যবহার করে আপনি আপনার ডেটা বিশ্লেষণকে আরও কার্যকর এবং স্বয়ংক্রিয় করতে পারেন।
common.read_more